/**
 * 版权所有 2009-2012山东新北洋信息技术股份有限公司
 * 保留所有权利。
 */
package com.linyaonan.leetcode.easy._83;

/**
 *
 * 给定一个排序链表，删除所有重复的元素，使得每个元素只出现一次。
 *
 * 输入: 1->1->2
 * 输出: 1->2
 *
 * 输入: 1->1->2->3->3
 * 输出: 1->2->3
 *
 * @ProjectName: leetcode
 * @Package: com.linyaonan.leetcode.easy._83
 * @ClassName: RemoveDuplicates
 * @Author: linyaonan
 * @Date: 2019/10/22 20:57
 */
public class RemoveDuplicates {

    public ListNode deleteDuplicates(ListNode head) {
        if (head == null) {
            return null;
        }
        // 主游标
        ListNode b = head.next;
        // 比较游标
        ListNode c = head;
        // 循环结束条件为主游标遍历结束
        while (b != null) {
            // 主游标值与比较游标值一致
            if (b.val != c.val) {
                // 一致时，链表指向当前主游标
                c.next = b;
                // 比较游标后移
                c = c.next;
            }
            // 游标后移
            b = b.next;
        }
        // 最后一位的比较游标
        c.next = null;
        return head;
    }

}
